$ErrorActionPreference = "Stop"

& git submodule --quiet update --init --recursive

Write-Host -ForegroundColor Green "`n### Installing CMake and python ###`n"
& cinst --no-progress cmake python2
& C:\Python27\python.exe -m pip install --upgrade pip
& C:\Python27\Scripts\pip.exe install six

Write-Host -ForegroundColor Green "`n### Installing sphinx ###`n"
& C:\Python27\Scripts\pip.exe install --user sphinx sphinx_rtd_theme

Write-Host -ForegroundColor Green "`n### Installing Miktex ###`n"
if (-not (Test-Path "c:\miktex\texmfs\install\miktex\bin\pdflatex.exe")) {
	& appveyor DownloadFile https://ftp.uni-erlangen.de/mirrors/CTAN/systems/win32/miktex/setup/windows-x86/miktex-portable.exe
	& 7z x miktex-portable.exe -oc:\miktex -bso0 -bsp0

	# Remove some big files to reduce size to be cached
	Remove-Item -Path c:\miktex\texmfs\install\doc -Recurse
	Remove-Item -Path c:\miktex\texmfs\install\miktex\bin\biber.exe
	Remove-Item -Path c:\miktex\texmfs\install\miktex\bin\a5toa4.exe
}

Write-Host -ForegroundColor Green "`n### Installing graphviz ###`n"
& cinst --no-progress graphviz
if ($LASTEXITCODE -and $LASTEXITCODE -ne 0) {
	Write-Host -ForegroundColor Red "`n`n*** Installing graphviz failed. Exiting ... ***"
	exit $LASTEXITCODE
}

Write-Host -ForegroundColor Green "`n### Installing mbedtls ###`n"

if ($env:CC_SHORTNAME -eq "mingw") {
	& C:\msys64\usr\bin\pacman --noconfirm -S mingw-w64-x86_64-mbedtls
} elseif ($env:CC_SHORTNAME -eq "vs2015") {
	# we need the static version, since open62541 is built with /MT
	# vcpkg currently only supports VS2015 and newer builds
	& vcpkg install mbedtls:x86-windows-static
}
if ($LASTEXITCODE -and $LASTEXITCODE -ne 0) {
	Write-Host -ForegroundColor Red "`n`n*** Installing mbedtls failed. Exiting ... ***"
	exit $LASTEXITCODE
}

if ($env:CC_SHORTNAME -eq "vs2015") {
	Write-Host -ForegroundColor Green "`n### Installing libcheck ###`n"
	& appveyor DownloadFile https://github.com/Pro/check/releases/download/0.12.0_win/check.zip
	& 7z x check.zip -oc:\ -bso0 -bsp0

	Write-Host -ForegroundColor Green "`n### Installing DrMemory ###`n"
	& cinst --no-progress drmemory.portable
}
